home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr35 / pw_10a.zip / PPEWHO.PPS < prev   
Text File  |  1993-06-22  |  4KB  |  96 lines

  1. ;*****************************************************************************
  2. ;*                                                                           *
  3. ;*                           PPEWHO.PPE v1.00a                               *
  4. ;*              PCBOARD 15.0 TRANSFER SUMMARY SEARCHER PROGRAM               *
  5. ;*                                                                           *
  6. ;*                Written by Larry Steele and Jerry Claxton                  *
  7. ;*                 Written in PCBoard Programming Language                   *
  8. ;*                         Compiled on 06-22-1993                            *
  9. ;*                                                                           *
  10. ;*                   "The Shoppe Bulletin Board Systems"                     *
  11. ;*               Node 1 - 708-888-0725 - [16.8 DS] - 80486/50                *
  12. ;*               Node 2 - 708-888-1162 - [16.8 DS] - 80486/40                *
  13. ;*               Node 3 - 708-888-0078 - [16.8 DS] - 80486/40                *
  14. ;*               Node 4 - 708-888-4175 - [16.8 DS] - 80486/40                *
  15. ;*               Node 5 - PRIVATE LINE - [16.8 DS] - 80486/66                *
  16. ;*                                                                           *
  17. ;*          Voice Support - [708-426-9411] - [10:00 am - 11:00 pm]           *
  18. ;*             Ask for Jerry Claxton, Assistant System Operator              *
  19. ;*****************************************************************************
  20.  
  21.  
  22. ;*****************************************************************************
  23. ;* Define variable types                                                     *
  24. ;*****************************************************************************
  25.  
  26. INTEGER POS, LINECOUNT, MATCHED
  27. STRING  TEMP_LINE, SEARCH_ANSWER, COMMAND_LINE
  28.  
  29. ;*****************************************************************************
  30. ;* Beginning of main program, Update USERNET.XXX and write to the CALLER log *
  31. ;*****************************************************************************
  32.  
  33. WRUNET PCBNODE(), UN_STAT(), UN_NAME(), UN_CITY(), "Running program [" + PPENAME() + ".PPE]", ""
  34. LOG "Transfer Summary Scanner (" + PPENAME() + ".PPE) " + "at (" + LEFT(TIME(), 5) + ")", 0
  35.  
  36. GETTOKEN COMMAND_LINE
  37. IF (COMMAND_LINE = "") THEN
  38.     NEWLINE
  39.     PRINTLN "This program will scan the system download/upload log file and list all entries"
  40.     PRINTLN "that mention a specific keyword.  You may select any full filename for scanning"
  41.     PRINTLN "or the search is done based on matching keywords (like the Zippy scan function)"
  42.     PRINTLN
  43.     PRINTLN "These searches can take a few minutes to complete, so please be patient!"
  44.  
  45.     INPUTSTR "Enter the Text to Search for (@X0FEnter@X0E)=none", SEARCH_ANSWER, 0Eh, 36, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + LFAFTER
  46.  
  47.     LET SEARCH_ANSWER = UPPER(SEARCH_ANSWER)
  48.     IF (SEARCH_ANSWER = "") STOP
  49. ELSE
  50.     LET SEARCH_ANSWER = UPPER(COMMAND_LINE)
  51. END IF
  52.  
  53.  
  54. IF (EXIST(READLINE(PCBDAT(), 46))) THEN
  55.     LOG "Searching for (" + SEARCH_ANSWER + ") ...", 0
  56.     NEWLINE
  57.     PRINTLN "@X0ESearching for (@X0F" + SEARCH_ANSWER + "@X0E) ..."
  58.     NEWLINE
  59.     PRINT "@X0ARemember you may cancel the search at anytime by pressing @X0FCTRL-K @X0A... "
  60.  
  61.     FOPEN 1, READLINE(PCBDAT(), 46), O_RD, S_DN
  62.     WHILE (!FERR(1)) DO
  63.         FGET 1, TEMP_LINE
  64.  
  65.         IF (TEMP_LINE <> "") THEN
  66.             LINECOUNT = LINECOUNT + 1
  67.             LET TEMP_LINE = UPPER(TEMP_LINE)
  68.  
  69.             IF (INSTR(TEMP_LINE, SEARCH_ANSWER)) THEN
  70.                 MATCHED = MATCHED + 1
  71.                 POS = INSTR(TEMP_LINE, SEARCH_ANSWER)
  72.  
  73.                 IF (MATCHED == 1) NEWLINES 2
  74.                 PRINT "@X0F" + LEFT(TEMP_LINE, (POS - 1)) + "@X74" + SEARCH_ANSWER + "@X0F"
  75.                 PRINTLN MID(TEMP_LINE, POS + LEN(SEARCH_ANSWER), ((LEN(TEMP_LINE) - POS) - LEN(SEARCH_ANSWER)))
  76.             END IF
  77.         END IF
  78.         IF (ABORT()) FCLOSE 1
  79.     END WHILE
  80.     FCLOSE 1
  81. ELSE
  82.     NEWLINE
  83.     LOG UPPER(READLINE(PCBDAT(), 46)) + ") is missing!", 0
  84.     PRINT "@X0C(" + UPPER(READLINE(PCBDAT(), 46)) + ") is missing!"
  85. END IF
  86.  
  87.  
  88. RESETDISP
  89. NEWLINE
  90. IF (MATCHED == 0) NEWLINE
  91. PRINTLN "@X0E" + STRING(LINECOUNT) + " entries scanned, " + STRING(MATCHED) + " matches."
  92. NEWLINE
  93.  
  94. WAIT
  95. END
  96.